home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 330_03 / tskconf.h < prev    next >
Text File  |  1990-10-10  |  17KB  |  451 lines

  1. ;/* --- Version 2.2 90-10-12 16:16 ---
  2. COMMENT ^
  3.  
  4.    TSKCONF.H - CTask - Configuration definitions 
  5.  
  6.    Public Domain Software written by
  7.       Thomas Wagner
  8.       Ferrari electronic Gmbh
  9.       Beusselstrasse 27
  10.       D-1000 Berlin 21
  11.       Germany
  12.  
  13.    This file has been changed in version 2.1 to allow inclusion in 
  14.    both the C and the Assembler parts. This avoids confusion and hard
  15.    to find errors due to mismatched configurations. It's still possible
  16.    to make errors, but since everything is close together, it's easier 
  17.    to spot the problem. Please be extra careful to ensure that the
  18.    C and Assembler definitions agree.
  19. */
  20.  
  21. #define  FALSE             0
  22. #define  TRUE              1       /*^
  23.          FALSE          =  0
  24.          TRUE           =  0ffffh  ; Note: Assembler definition is different
  25.  
  26. COMMENT ^
  27.  
  28.    CODE_SHARING   If TRUE, the generated kernel supports code sharing.
  29.                   This requires the entry points to load ds on entry,
  30.                   and compilation with Large model (MSC) or Huge model (TC).
  31.                   The default is FALSE.
  32.                   
  33.    NEAR_CODE      If TRUE, all CTask routines are 'near'.
  34.                   Use only with small model.
  35.                   You will have to change the make-files so the
  36.                   compiler model is no longer Large, and the code segment
  37.                   is not named, when turning on this flag.
  38.                   The default is FALSE.
  39.  
  40.    LOCALS_FAR     If TRUE, internal CTask routines ar 'far'.
  41.                   This might be necessary if your compiler/linker does
  42.                   not allow placing all CTask kernel code in a common
  43.                   segment.
  44.                   Do not set this flag if NEAR_CODE is set.
  45.                   The default is FALSE.
  46.  
  47.    CALL_PASCAL    Use Pascal calling sequence for CTask routines.
  48.                   This may save some code, but may cause naming
  49.                   conflicts if your compiler limits external Pascal
  50.                   names to 8 characters.
  51.                   The default is FALSE.
  52.  
  53.    TC_HUGE        (Assembler only)
  54.                   Define TC_HUGE for use with the Turbo C Huge
  55.                   model, and if it is desired to separate CTask's data
  56.                   from the normal data segment.
  57.                   This flag causes the CTASK_DATA segment to be defined,
  58.                   (class is DATA) and DS to be loaded with this segment
  59.                   on function entry. 
  60.                   The C functions in the CTask kernel must be compiled
  61.                   to use the same data segment.
  62.                   The default is not defined.
  63.  
  64.    LOAD_DS        (Assembler only)
  65.                   Define LOAD_DS to reload the data segment on entry
  66.                   to global functions.
  67.                   This flag must be defined for TC_HUGE. It can also be
  68.                   defined if the data segment can not safely be assumed to be
  69.                   loaded in DS on function entry, for example if the code
  70.                   sharing feature of version 2.1 is used. The C routines
  71.                   must be compiled with the necessary compiler switches
  72.                   or the _loadds keyword in this case.
  73.                   The default is not defined.
  74.  
  75.    ROM_CODE       (Assembler only)
  76.                   Define ROM_CODE TRUE for embedded systems using ROM-
  77.                   based code. This option disables storing variables in
  78.                   the code segment.
  79.                   The default is FALSE.
  80.  
  81.    FAR_STACK      (Assembler only)
  82.                   If FAR_STACK is defined TRUE, the local stacks used
  83.                   by CTask interrupt handlers are allocated outside the
  84.                   default data segment. This may require changes in the
  85.                   standard start-up module to make sure the segment 
  86.                   ordering is correct. The Turbo C linker may be confused
  87.                   and place the CTask-stack segment in the middle of the
  88.                   DGROUP if no mention is made of the segment in C0.ASM.
  89.                   The default is FALSE.
  90.  
  91.       CAUTION:    Changing requires recompile of all sources.
  92. */
  93.  
  94. #define  CODE_SHARING      FALSE
  95. #define  NEAR_CODE         FALSE
  96. #define  LOCALS_FAR        FALSE
  97. #define  CALL_PASCAL       FALSE    /*^
  98.                         
  99.          CODE_SHARING   =  FALSE
  100.          NEAR_CODE      =  FALSE
  101.          LOCALS_FAR     =  FALSE
  102.          CALL_PASCAL    =  FALSE
  103.  
  104.          ROM_CODE       =  FALSE    ; ASM only
  105.          FAR_STACKS     =  FALSE    ; ASM only
  106.  
  107. ; The following two defines may be defined on the command line (any value)
  108. ; or uncommented here. To disable, don't set to FALSE, comment them out.
  109. ; Setting TC_HUGE is sufficient to enable both options.
  110.  
  111. ;        TC_HUGE        =  1     ; ASM only
  112. ;        LOAD_DS        =  1     ; ASM only
  113.          IFDEF    TC_HUGE
  114. LOAD_DS  =  1
  115.          ENDIF
  116.  
  117. COMMENT ^
  118.  
  119.    TSK_DYNAMIC    if TRUE, creating dynamic control blocks is allowed.
  120.                   This option should normally be disabled in embedded
  121.                   systems. Disabling the option will also save some
  122.                   code, and eliminate the (model dependent) references
  123.                   to the C memory allocation routines. This could be
  124.                   useful for TSR or spawning kernels, and if you don't
  125.                   use the dynamic allocation feature anyway.
  126.                   The tsksio module requires TSK_DYNAMIC to be set
  127.                   if on-line definition of new ports is desired.
  128.                   The default is TRUE.
  129.  
  130.       CAUTION:    Changing requires recompile of all sources.
  131.  
  132.    TSK_DYNLOAD    if FALSE, this instance of the kernel does not include
  133.                   dynamic allocation routines.
  134.                   Setting this flag to FALSE when TSK_DYNAMIC is TRUE
  135.                   only makes sense with multiple linked kernels. A resident
  136.                   kernel might not employ dynamic allocation, whereas a
  137.                   secondary kernel needs it. In this situation, TSK_DYNAMIC
  138.                   must be set in the primary so that the task kill code
  139.                   is included and the kernel configurations match, but 
  140.                   TSK_DYNLOAD may be false to prevent inclusion of the 
  141.                   malloc/free run-time routines.
  142.                   This option has no effect if TSK_DYNAMIC is FALSE.
  143.                   The default is TRUE.
  144.  
  145.       CAUTION:    Changing requires recompile of tskinst.c and tskgrp.c.
  146. */
  147.  
  148. #define  TSK_DYNAMIC       TRUE
  149. #define  TSK_DYNLOAD       TRUE    /*^
  150.  
  151.          TSK_DYNAMIC    =  TRUE
  152.          TSK_DYNLOAD    =  TRUE
  153.  
  154. COMMENT ^
  155.  
  156.    IBM            if TRUE, routines specific to the IBM family of PCs
  157.                   (and clones) are installed.
  158.                   The default is TRUE.
  159.  
  160.    DOS            if TRUE, routines specific to PC/MS-DOS are installed.
  161.                   The default is TRUE.
  162.  
  163.    NOTE:          If you disable IBM, you have to provide timer and keyboard
  164.                   hardware support yourself. Check the areas in "tskmain.c" 
  165.                   that are affected by this define.
  166.                   If you disable DOS, the resulting version can not be
  167.                   used under DOS without significant restrictions.
  168.                   The program can be tested, but DOS is not protected
  169.                   from multiple entrance, so that concurrent DOS calls
  170.                   will crash the system. You can use this configuration
  171.                   (IBM true, DOS false) to debug embedded applications
  172.                   which do not use DOS calls under DOS.
  173.  
  174.       CAUTION:    Changing requires recompile of all sources.
  175. */
  176.  
  177. #define  IBM               TRUE
  178. #define  DOS               TRUE     /*^
  179.  
  180.          IBM            =  TRUE 
  181.          DOS            =  TRUE 
  182.  
  183. COMMENT ^
  184.  
  185.    TSK_NAMEPAR    if TRUE, the create_xxx routines accept a name parameter.
  186.                   The default is TRUE.
  187.  
  188.    TSK_NAMED      if TRUE, control block names are processed.
  189.                   The default is TRUE.